package com.atguigu.tingshu.user.service;

import com.atguigu.tingshu.model.user.UserInfo;
import com.atguigu.tingshu.vo.album.TrackStatMqVo;
import com.atguigu.tingshu.vo.user.UserCollectVo;
import com.atguigu.tingshu.vo.user.UserInfoVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Map;

public interface UserInfoService extends IService<UserInfo> {

    /**
     * @description:微信小程序登录
     * @author: coilk
     * @date: 2025/3/11 20:17
     * @param: code
     * @return: java.util.Map<java.lang.String,java.lang.Object>
     **/
    Map<String, Object> WxLogin(String code);

    Map<String, Object> getNewAccessToken();

    void updateUser(UserInfoVo userInfoVo);

    UserInfoVo getUserInfo(Long userId);

    Map<Long, String> getUserPaidAlbumTrack(Long userId, Long albumId);

    Boolean getUserPaidAlbum(Long userId, Long albumId);

    Boolean collect(Long trackId);

    public TrackStatMqVo prepareTrackStatMqDto(Long albumId, Long trackId, String trackStatType, int count);

    Boolean isCollect(Long trackId);

    IPage<UserCollectVo> findUserCollectPage(IPage<UserCollectVo> pageParam);
}
